package com.ruoyi.pointRecord.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.pointRecord.domain.PointsExchangeRecord;
import com.ruoyi.pointRecord.dto.PointsExchangeRecordDTO;

/**
 * 商品退货服务接口
 *
 * @author amy
 * @date 2025-06-24
 */
public interface IProductReturnService {

    /**
     * 商品退货
     *
     * @param returnRequest 退货请求对象（包含id、userId、remark等信息）
     * @return 处理结果
     */
    AjaxResult returnProduct(PointsExchangeRecordDTO returnRequest);

    /**
     * 批量退货（管理员功能）
     *
     * @param exchangeIds 兑换记录ID数组
     * @param returnReason 退货原因
     * @param operatorId 操作员ID
     * @return 处理结果
     */
    AjaxResult batchReturnProduct(Long[] exchangeIds, String returnReason, Long operatorId);


    /**
     * 取消兑换（仅限待发货状态）
     *
     * @param cancelRequest 取消请求对象（包含id、userId、remark等信息）
     * @return 处理结果
     */
    AjaxResult cancelExchange(PointsExchangeRecord cancelRequest);
}